#include <stdbool.h>
// 定义数组长度
#define MAXSIZE 100
// 定义顺序表结构
typedef struct
{
    int data[MAXSIZE];
    int length;
} SeqList;
// 初始化顺序表
void InitList(SeqList *L);
// 判断顺序表是不是空的
/*
只需要知道顺序表结构的长度是不是0就可以了，
不需要使用指针了，其他地方已经使用指针修改过了
*/
bool ListEmpty(SeqList L);
/*
获得顺序表的长度
需要一个参数
- 顺序表变量
*/
int ListLength(SeqList L);
/*
按照位置查找元素
- 顺序表变量(没有出现修改，使用普通的变量就可以了)
- 位置变量
- 需要在函数里边修改，并且带回来的指针
*/
bool GetElem_SequenceList(SeqList L, int pos, int *elem);
/*
 @brief 按照值查找元素
 @param 结构体变量
 @param 需要查找的值
@return 返回值的位置也就是索引+1，如果返回0表示没有找到
*/
int LocalElem(SeqList L, int elem);
/**
 * @brief 插入元素
 * @param 结构体指针变量（插入出现对于顺序表的修改）*L
 * @param 插入位置变量 pos
 * @param 插入的值变量 elem
 * @return bool
 */
bool ListInsert(SeqList *L, int pos, int elem);
/**
 * @brief 删除元素 ListDelete
 * @param 结构体指针
 * @param 删除位置
 * @param 删除元素（需要使用指针，
 * 因为变量没有作为返回值，所以需要使用指针带回来）
 * @return bool
 * */
bool ListDelete(SeqList *L, int pos, int *elem);
/**
 * @brief 打印顺序表
 * @param 结构体变量
 *
 * @return void
 */
void PrintList(SeqList L);
/**
 * @brief 清空顺序表
 * @param 需要修改的结构体指针变量
 * @return void
 */
void ClearList(SeqList *L);